
/**
 *
 *  bool        Boolean, one byte
 *  byte        Signed byte
 *  i16         Signed 16-bit integer
 *  i32         Signed 32-bit integer
 *  i64         Signed 64-bit integer
 *  double      64-bit floating point value
 *  string      String
 *  binary      Blob (byte array)
 *  map<t1,t2>  Map from one type to another
 *  list<t1>    Ordered list of one type
 *  set<t1>     Set of unique elements of one type
 *
 */

namespace java bcm.printbridge


/**
 * Structs can also be exceptions, if they are nasty.
 */
exception PrintException {
  1: i32 whatOp,
  2: string why
}

struct RemotePrinter{
	1:string name,
	2:string description
}

struct PrintParameters{
	1:bool multiPage,
	2:string printerName,
	3:string docName,
	4:string uid	
	5:string userName,
	6:string url,
}

service PrintBridge{
   	void ping(),
	
	bool checkPrinter(1:string printerName) throws (1:PrintException e),

	list<RemotePrinter> listPrinters(),

	string printPrinter(1:PrintParameters command) throws (1:PrintException e),

	binary printPdf(1:PrintParameters command) throws (1:PrintException e),

	binary printImage(1:PrintParameters command) throws (1:PrintException e),

	void kickOut(), 

}

